Most business organizations require that their computational resources and the required data be available wherever and whenever they are needed. It is also desired that the data be accessed using any desktop application in a platform independent manner. Once this accessibility is achieved, the organizations can share data, integrate their processes, and join forces to offer customized and comprehensive solutions to their end users.
Before the Internet gained popularity, most organizations stored their data in large databases handled by mainframes. Dumb terminals with no processing capability were used to connect to the mainframe. Mainframes were used to process the data and present the output using dumb terminals. The mainframes being extremely expensive were beyond buying capacity of most of the organizations.
Later years witnessed the evolution of distributed data processing techniques. These techniques allowed different computers to share data and also to allow one computer to control a process on another computer. The distributed data processing technique was more flexible and less expensive than mainframes. However, there are few disadvantages associated with distributed computing. Firstly, server computers are required to coordinate different computers to work towards a goal. Secondly, security is a concern in distributed computing as data is frequently transferred between different computers. Thirdly, the maintenance of a distributed network is complex as each computer has its own share of problems and errors.
With an increase in popularity of the Internet, much of the data is now available over the Internet in the form of web pages. Much of the data needed by the businesses is now accessible from a remote location using the Internet. The information is stored in centralized databases that serve a page at a time to individual users. Thus, the information is scattered in the form of web pages. The user needs to manually search many web pages to extract relevant data, which is resource intensive, inconvenient and time consuming.
In addition to sharing data, standalone applications and web services were developed to provide isolated functionality and data. Each application/web service has a specific format of accepting input and presenting output, implementing security policies for connecting with a client, etc. In order to access a web service, a user needs to satisfy all the requirements set forth by the web service. In other words, a client needs to be compatible with a web service in order to access it. Most of the times, a user needs to access many applications and web services to obtain the required information. For example, the user may need to collect data from one application or web service and provide it to another application or web service. In these cases, the client needs to be compatible with multiple web services and applications, which requires programming effort. Therefore, much time, cost and resources are expended in resolving these compatibility issues.
In order to address the compatibility issues and the manner in which business organizations and consumers use the Internet, a new converged computing model has evolved. This model aims at devising standard ways of building applications and processes to connect and exchange information over the Internet. Standards such as CORBA (Common Object Request Broker Architecture) and Microsoft's COM (Component Object Model) and DCOM (Distributed Component Object Model) were some of the attempts in this direction. However connecting and sharing information between different applications and processes gained momentum with the introduction of eXtensible Markup Language (XML) in 1996. XML is a flexible way to create common information formats and share both the format and the data between different applications and web services. Various XML-based ways of running procedures on remote machines and of sharing objects have evolved. Some of the most important developments have been the Simple Object Access Protocol (SOAP), Web Services Description Language (WSDL) and Universal Description, Discovery, and Integration (UDDI). SOAP is a way for a program running in one kind of operating system to communicate with a program in the same or another kind of an operating system. For example, using SOAP, a program running in Windows 2000 may communicate with another operating system such as Linux. WSDL is an XML-based language that is used to describe the services a business offers and to provide a way for individuals and other businesses to access those services electronically. UDDI is an XML-based registry for businesses worldwide to list themselves on the Internet. UDDI aims at streamlining online transactions by enabling companies to find one another on the Web and make their systems interoperable for e-commerce.
The advantages offered by XML are used by web services to provide services to various web users or collaboration systems in a platform independent manner. Web services provide a standard mechanism of publishing the interfaces of the computing resources on the network.
These web services available on web servers can be accessed by using various techniques. The user can avail these services by directly linking to the server via a web browser. A web browser is a customized application that supports web access capabilities for various collaboration systems. The data obtained from the web services needs to be collated and presented to the user in a suitable format. This collation and presentation is usually performed on desktop applications like collaboration tools. The data acquired from web services is accessed using various desktop applications. Today's standalone desktop applications rarely provide any capability in connecting and conversing with web services. For the few desktop applications that provide these capabilities, the capability is very limited. A complex programming effort is required in order to extend the capabilities of the desktop applications to access web services.
There exist few products in the prior art that allow existing desktop applications to access web services available on the Internet. One such product is Microsoft Office XP Web Services Toolkit 2.0 manufactured by Microsoft Corporation, Redmond Wash., USA. This product is used to access and utilize XML Web services. Web Service References Tool 2.0 is used in a client application to create a Microsoft Visual Basic Application (VBA) proxy class module from a WSDL file. This proxy class contains methods and program code that allow the user to invoke XML Web services. The user can further use this proxy class to write VBA macro/subroutines to access the web services.
Another product is Fincad XL 5 manufactured by FinancialCAD Corporation, Surrey, B.C., Canada. FinancialCAD Corporation provides customized plug-in for a MS Excel user to access its web services. The Fincad XL 5 plug-in provides spreadsheets that contain special Fincad XL 5 functions, called “remote functions”. These functions provide programmatic access for Microsoft Excel spreadsheet users to the application services available to Fincad.net subscribers.
These products aid in accessing web services to a certain extent. However, one or more of the abovementioned products suffer from certain drawbacks. Firstly, the prior applications provide libraries/classes to enable access to web services. But, these applications need programming at the user's end, hence making the system difficult to use by people with little programming knowledge. Secondly, the interfaces provided by these products are predefined. This restricts the ability of the user to manipulate and compile data in a desired format. Thirdly, these products provide access only to a limited set of web services. This largely restricts the type of web services that can be accessed by the user.
Accordingly, there is a need for systems and methodology that allow existing desktop applications to access various web services available over the Internet. Also, there is a need for the system to be user friendly and involve no programming or scripting effort on user's part. Also, there is a requirement for a system that has provisions to present the output data received from the web services in a predefined format desired by the user. Also, in order to access all types of web services, there is a need for a system to ensure compatibility with web services, given the limits of the hosted desktop application. Further, there is a need for a system that facilitates sophisticated communication mechanisms that are originally supported (or not supported) by the desktop application. In addition, there is a need for a system that is not restricted to a specific set of web services.